package com.Stream;

import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Stream;

/**
 * @ClassName: Base
 * @Description: Stream流
 * 三个阶段：
 * 1、创建流 从底层集合中产生流（底层数据结果不会改变）
 * 2、转换流 将初始流转换为其他的的一个或者多个中间操作（惰性操作，不会立即执行） intermediate operation.
 * 3、终止流 产生结果，并且强制终止之前的惰性操作  terminal operation
 * @author: li
 * @Date: 2021/8/20 9:00 下午
 */
public class Base {
    public static void main(String[] args) {
        // 从集合产生流
        List<String> list = new ArrayList<>();
        list.add("123456789");
        list.add("123456789");
        list.add("123456789");
        list.add("1234");
        list.add("12349");
        // 通过Stream.of静态方法创建流或者Array.stream创建
        Stream.of("1234","3214","3423");
        //传入数组
//        Arrays.stream()
        //并行流
        long count = list.parallelStream().filter(o1 -> o1.length() > 5).count();
        //串行流
        long count1 = list.stream().filter(o1 -> o1.length() > 5).count();
        System.out.println(count);
        /**
         * 无限流
         */

    }
}
